﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class servicos : System.Web.UI.Page
{
    private EQUIPAMENTO equipamentos = new EQUIPAMENTO();
    private SERVICOS_EQUIPAMENTO sevicosequipamentos = new SERVICOS_EQUIPAMENTO();
    private Servico servico = new Servico();
    private dbSisInfoDataContext Banco = new dbSisInfoDataContext();

    protected void Page_Load(object sender, EventArgs e)
    {
        Session["Titulo"] = "Serviços";

          }

    protected void btnIncluir_Click(object sender, EventArgs e)
    {
        pnlInserir.Visible = true;
        txtNome.Text = txtDescricao.Text; 
        txtNome.Focus();
    }
    protected void grdSituacoes_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (ViewState["btn"].ToString().Trim() == "btnDelete")
        {
            Button1_ModalPopupExtender.Show();
        }
        else if(ViewState["btn"].ToString().Trim() == "lkbSelect")
        {
            // Configurar drop de equpamentos
            ConfiguraDrop();

            pnlInserir0.Enabled = true;

            grdServicosEquipamentos.DataSourceID = linqServicosEquipamentos.ID;
            PopulaServicosEquipamentos();
           
        }
    }

    void ConfiguraDrop()
    {
        dropEquipamentos.Items.Clear();
        dropEquipamentos.DataTextField = "Nome";
        dropEquipamentos.DataValueField = "idEquipamento";

        dropEquipamentos.AppendDataBoundItems = true;
        dropEquipamentos.Items.Add( new ListItem(">> SELECIONE <<","0"));
        dropEquipamentos.Items[0].Selected = true;

        var dados_equipamentos = from E in Banco.SelecionaEquipamentosDisponiveisServico(Convert.ToInt32( grdServicos.SelectedDataKey["idServico"]))
                                 orderby E.Nome ascending
                                 select E;

        dropEquipamentos.DataSource = dados_equipamentos;
        dropEquipamentos.DataBind();
        
    }
    protected void btnPesquisar_Click(object sender, EventArgs e)
    {
        linqServicos.Where = "Nome.Contains(\""+txtDescricao.Text+"\")";
        linqServicos.DataBind();
        grdServicos.DataBind();

    }
  
    protected void grdEquipamentos_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
       
    }
    protected void btnSim0_Click(object sender, EventArgs e)
    {
        grdServicos.DeleteRow(grdServicos.SelectedIndex);
        grdServicos.DataBind();
    }
    protected void grdEquipamentos_DataBound(object sender, EventArgs e)
    {
        if (grdServicos.Rows.Count > 0)
        {
            grdServicos.HeaderRow.Cells[0].Text = " - Quantidade de items: " + grdServicos.Rows.Count.ToString();
        }
    }
   
    protected void grdEquipamentos_RowCreated(object sender, GridViewRowEventArgs e)
    {
        string onmouseoverStyle = "this.style.backgroundColor='#FFFFCC';";
       // string onmouseoverStyle = "this.style.boder='solid 1 px red'";


        string onmouseoutStyle = "this.style.backgroundColor='@BackColor'";

        string rowBackColor = "transparent"; //String.Empty;

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes.Add("onmouseover", onmouseoverStyle);

            e.Row.Attributes.Add("onmouseout", onmouseoutStyle.Replace("@BackColor", rowBackColor));

        } 
    }
    protected void btnIncluir0_Click(object sender, EventArgs e)
    {
        if (RequiredFieldValidator2.IsValid)
        {

            servico.nome = txtNome.Text;
            servico.preco = string.IsNullOrEmpty(txtValor.Text) ? 0 : Convert.ToDecimal(txtValor.Text);

            Banco.Servicos.InsertOnSubmit(servico);
            Banco.SubmitChanges();
            grdServicos.DataBind();

            txtDescricao.Text = string.Empty;
            txtNome.Text = "";
            txtValor.Text = "";
            txtNome.Focus();
        }
        else
        {
            Button1_ModalPopupExtender.Hide();
        }
        
    }
    protected void btnCancela_Click(object sender, EventArgs e)
    {
        txtNome.Text = "";
        txtValor.Text = "";

        pnlInserir.Visible = false;
    }

    protected void btnDelete_Click(object sender, EventArgs e)
    {
        ViewState["btn"] = ((Button)sender).ID;
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        ViewState["btn"] = ((LinkButton)sender).ID;
    }
    protected void btnIncluir1_Click(object sender, EventArgs e)
    {
        if (dropEquipamentos.SelectedIndex > 0)
        {
            // vincular o equipamento ao setor

            sevicosequipamentos.idEquipamento = Convert.ToInt32(dropEquipamentos.SelectedValue);
            sevicosequipamentos.idServico = Convert.ToInt32(grdServicos.SelectedDataKey["idServico"].ToString());

            sevicosequipamentos.DataCriacao = DateTime.Now;

            Banco.SERVICOS_EQUIPAMENTOs.InsertOnSubmit(sevicosequipamentos);
            Banco.SubmitChanges();

            PopulaServicosEquipamentos();

            ConfiguraDrop();
        }
    }

    void PopulaServicosEquipamentos()
    {
        // Popular a lista de equipamentos que suportam o serviço      
        linqServicosEquipamentos.Where = " idServico=" + grdServicos.SelectedDataKey["idServico"].ToString();
        linqServicosEquipamentos.DataBind();
        grdServicosEquipamentos.DataBind();
     }
    protected void grdServicosEquipamentos_SelectedIndexChanged(object sender, EventArgs e)
    {
       
    }
    protected void grdServicosEquipamentos_SelectedIndexChanged1(object sender, EventArgs e)
    {
        ModalPopupExtenderDeleteES.Show();
    }
    protected void btnSimSE_Click(object sender, EventArgs e)
    {
        grdServicosEquipamentos.DeleteRow(grdServicosEquipamentos.SelectedIndex);

        PopulaServicosEquipamentos();
        ConfiguraDrop();
    }
    protected void btnIncluir0_Click1(object sender, EventArgs e)
    {

    }
}
